home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / dev / cross / z88dk_v1.0s.readme < prev   
Text File  |  1999-05-02  |  9KB  |  197 lines

  1. Short:    Z88DK - Generic Z80 Small C+ Compiler with Z88 Libraries
  2. Author:   Cain, Yorston et al, extended by Dominic Morris
  3. Uploader: Dominic Morris <djm@jb.man.ac.uk>
  4. Type:     dev/cross
  5.  
  6. Z88DK v1.0 - sccz80 v1.10b0.51 - Source Code Archive
  7. ----------------------------------------------------
  8.  
  9. Z88DK is a package along the lines of the GBDK, however it produces code
  10. for full Z80s and not the cutdown version in the Gameboy.
  11.  
  12. The package consists of a Small C+ Compiler, Peephole Optimizer, and
  13. unified assembler and linker (provided by Z80asm from Interlogic).
  14. Libraries are supplied for the Cambridge Z88 however it would be a fairly
  15. trivial task to create libraries for other Z80 based machines.
  16.  
  17. This is the first public release of the compiler, however it has under
  18. fairly extensive testing for 6 months and I now believe it to produce
  19. stable code.
  20.  
  21. Features of the compiler include:
  22.  
  23. - Structs/unions
  24. - Floating point support (either generic Z80 or stubs for the Z88 fp
  25.   calculator)
  26. - Long (32 bits), int (16 bits), char (8 bits) datatypes
  27. - Signed and unsigned datatypes
  28. - Compiler support for far datatypes (allows support for up to 4MB of
  29.   memory) though no library support as yet.
  30. - Literal pools for double constants and strings, both pools feature
  31.   literal merging (removal of repeated constants).
  32. - ANSI & K&R function style declarations and prototypes
  33. - Extensive support library (over 200 usable routines) including almost a
  34.   full complement of string and ctype functions
  35. - Definition during declaration of global and local static variables
  36.   (though not auto variables)
  37.  
  38. The compiler front end (zcc) is a much rewritten affair based on the 
  39. ZCC096 frontend by Ken Yap, it has been considerably extended and rewritten
  40. to function as much as possible like any other big box compiler frontend.
  41.  
  42. Optimization is provided courtesy of a peephole optimizer which substitutes
  43. certain compiler output for more efficient code, in particular logical
  44. operation on unsigned chars are well catered for. Savings in program size
  45. of over 10% are common place.
  46.  
  47. All assembler output is generated in a form suitable for use with the
  48. Z80 Module Assembler from Interlogic (A full setup is included within
  49. this archive), this freely distributable assembler generates compact
  50. object files and allows linking in of routines from multiple library files.
  51.  
  52. The source code for the entire suite is available in a separate archive
  53. (z88dk_v1.0s.lha).
  54.  
  55. Potential Problems:
  56.  
  57. - Floating point constants may not be correctly evaluated, I can't
  58.   reproduce the problem that has been reported by some people.
  59. - Far Pointer code is far from complete so the compiler might produce
  60.   some spectacularly duff code.
  61.  
  62. Potential source of confusion:
  63.  
  64. - This compiler comes with no warrantry, if it works for you, thats great,
  65.   if it doesn't and in the process destroys France than thats not my
  66.   problem!
  67.  
  68. The compiler lacks the following features:
  69.  
  70. - Casts (though conversions between types are done automatically this will
  71.   raise compiler warnings)
  72. - Enums (get around by use #define)
  73. - Typedefs (get around by use of #define)
  74.  
  75. Recompense:
  76.  
  77. - This compiler suite is provided free of charge and nothing is expected
  78.   off of you if you use it, however it would be nice to get an email if
  79.   you use it. If you release a commercial program using this package then
  80.   it would be good to learn about it and know that all my work is not in
  81.   vain! (A copy of the program would be appreciated). 
  82.  
  83. - Hardware, especially of the SCSI variety, always accepted <grin>
  84.  
  85. A few thank yous:
  86.  
  87. Although I mention them in the doc file, I feel I ought to mention the
  88. following people, without whom this compiler would not have got this far:
  89.  
  90. - Dennis Groning, this guy tirelessly compiled the compiler for WinBlows
  91.   and reported back with so many bug reports and suggestions that have
  92.   made the compiler so much better.
  93.  
  94. - Gunther Strube, without this guys assembler, z80asm, I wouldn't be sat
  95.   here writing this text.
  96.  
  97. - Garry Lancaster, for not compiling for Linux for almost 6 months(!), but
  98.   especially for putting up with me rabbiting on about it for those 6
  99.   months without getting too irate (though he did write convert Forth for
  100.   the Z88 in that time - maybe thats his way of venting anger?!?! <grin>)
  101.  
  102. Finally:
  103.  
  104. I'm still developing the Compiler, and I would very much like to keep
  105. a unified Cross Compiler, I release the source so that you can pick up
  106. on any bugs, laugh at the kludges which I've made(!) If you make any
  107. changes could you please let me know so that I can incorporate them into
  108. my set of sources - it would be a shame to come this far and end up with
  109. n different distributions, cheers!
  110.  
  111. Have fun with the package,
  112.  
  113. d.
  114. <djm@jb.man.ac.uk>
  115.  
  116. 22/3/99
  117.  
  118.  
  119. ============================= Archive contents =============================
  120.  
  121. Original  Packed Ratio    Date     Time    Name
  122. -------- ------- ----- --------- --------  -------------
  123.      144     109 24.3% 23-Mar-99 00:25:58  src.readme
  124.     1892     867 54.1% 19-Dec-95 10:27:38 +copt.1
  125.     4705    1785 62.0% 06-Dec-98 20:10:08 +copt.c
  126.       71      69  2.8% 15-Dec-98 21:10:20 +Makefile
  127.     5006    1860 62.8% 20-Mar-99 01:52:14 +copt.c
  128.       71      69  2.8% 15-Dec-98 21:10:20 +Makefile
  129.     6610    2720 58.8% 12-Aug-98 18:02:40 +cpp.h
  130.    28272   16658 41.0% 17-Feb-99 00:54:50 +cpp1
  131.    17231    6919 59.8% 12-Aug-98 18:02:50 +cpp1.c
  132.    21375    6041 71.7% 17-Feb-99 00:54:32 +cpp2.c
  133.    12420    4703 62.1% 12-Aug-98 18:02:56 +cpp3.c
  134.    17215    6326 63.2% 12-Aug-98 18:02:58 +cpp4.c
  135.    21836    7666 64.8% 12-Aug-98 18:16:04 +cpp5.c
  136.    28047    9675 65.5% 12-Aug-98 18:03:04 +cpp6.c
  137.     4071    1755 56.8% 12-Aug-98 18:03:06 +cppdef.h
  138.    32490    9250 71.5% 03-Aug-98 01:17:34 +DISSZ80.C
  139.     4425    1690 61.8% 03-Aug-98 00:40:06 +DISSZ80.H
  140.     5318    2178 59.0% 03-Aug-98 00:42:44 +DZ80.C
  141.      869     465 46.4% 03-Aug-98 00:43:16 +DZ80.H
  142.     1738     826 52.4% 08-May-98 01:16:10 +LOADFL32.C
  143.     3396    1018 70.0% 08-Nov-97 17:14:06 +PARSECMD.C
  144.      202     140 30.6% 03-Aug-98 00:41:58 +PARSECMD.H
  145.      431     258 40.1% 03-Aug-98 00:40:26 +TYPES.H
  146.     6425    2413 62.4% 28-Feb-98 09:21:36 +WHATSNEW.TXT
  147.     6372    1927 69.7% 22-Mar-99 21:27:18 +callfunc.c
  148.      158     112 29.1% 22-Mar-99 21:29:02 +callfunc.h
  149.      773     318 58.8% 22-Mar-99 21:29:04 +ccdefs.h
  150.    27510    6191 77.4% 22-Mar-99 21:28:00 +codegen.c
  151.     2636     555 78.9% 22-Mar-99 21:29:06 +codegen.h
  152.    13829    4235 69.3% 22-Mar-99 21:28:04 +const.c
  153.      455     194 57.3% 22-Mar-99 21:29:08 +const.h
  154.     5460    1987 63.6% 22-Mar-99 21:28:08 +data.c
  155.     2015     574 71.5% 22-Mar-99 21:29:08 +data.h
  156.    19731    5860 70.3% 22-Mar-99 21:28:16 +declfunc.c
  157.      607     260 57.1% 22-Mar-99 21:29:12 +declfunc.h
  158.     8177    2257 72.3% 22-Mar-99 21:28:22 +declinit.c
  159.      315     138 56.1% 22-Mar-99 21:29:12 +declinit.h
  160.    22119    5758 73.9% 22-Mar-99 21:28:12 +declvar.c
  161.      699     283 59.5% 22-Mar-99 21:29:10 +declvar.h
  162.     6362    2131 66.5% 22-Mar-99 21:29:14 +define.h
  163.     1997     800 59.9% 22-Mar-99 21:28:24 +error.c
  164.      288     117 59.3% 22-Mar-99 21:29:16 +error.h
  165.    25399    5480 78.4% 22-Mar-99 21:28:30 +expr.c
  166.      623     159 74.4% 22-Mar-99 21:29:16 +expr.h
  167.     6198    1800 70.9% 22-Mar-99 21:28:32 +float.c
  168.      336     103 69.3% 22-Mar-99 21:29:18 +float.h
  169.     5239    1664 68.2% 22-Mar-99 21:28:34 +io.c
  170.      861     254 70.4% 22-Mar-99 21:29:18 +io.h
  171.     2115     703 66.7% 22-Mar-99 21:28:38 +lex.c
  172.      278      99 64.3% 22-Mar-99 21:29:20 +lex.h
  173.     1095     458 58.1% 22-Mar-99 21:29:22 +lvalue.h
  174.    24571    6834 72.1% 22-Mar-99 21:28:38 +main.c
  175.     1268     364 71.2% 22-Mar-99 21:29:22 +main.h
  176.     1143     460 59.7% 03-Mar-99 23:53:10 +makefile
  177.     1617     699 56.7% 22-Mar-99 21:28:40 +misc.c
  178.      222     131 40.9% 22-Mar-99 21:29:24 +misc.h
  179.    11664    2694 76.9% 22-Mar-99 21:28:42 +plunge.c
  180.      477     167 64.9% 22-Mar-99 21:29:24 +plunge.h
  181.    10075    2093 79.2% 22-Mar-99 21:28:44 +preproc.c
  182.      442     142 67.8% 22-Mar-99 21:29:26 +preproc.h
  183.    21076    4944 76.5% 22-Mar-99 21:28:56 +primary.c
  184.     1202     349 70.9% 22-Mar-99 21:29:30 +primary.h
  185.    16566    4272 74.2% 22-Mar-99 21:29:00 +stmt.c
  186.      498     149 70.0%